package com.translate.web.param;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import com.translate.web.constant.ValidateCondtionAndMessage;
import com.translate.web.param.contract.IOrderSearchParam;

import java.util.List;

/**
 * 订单搜索
 */
public class OrderSearchParam extends DateRangeParam implements IOrderSearchParam {
	
	// 流程id
//	@NotNull
//	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
//	private Integer flowId;
	// 订单编号
	@Pattern(regexp = ValidateCondtionAndMessage.ORDER_SN_REGLEX,
			message = ValidateCondtionAndMessage.ORDER_SN_REGLEX_MSG)
	private String orderSnId;
	
	// 服务类型编号
	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
	private Integer serviceId;
	
	// 是否 加急 0 否 1 是
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_STATUS_MSG)
	private Byte urgent;
	
	// 服务状态【0 初始 1 反馈 2 售后 3 新增】
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = 3, message = "服务状态最大值为3")
	private Byte serviceStatus;
	
	@Min(value = -1, message = "订单状态最小为-1")
	@Max(value = 16, message = "订单状态最大为16")
	private Byte userStatus;


	private List<Integer> userStatusList;

	public List<Integer> getUserStatusList() {
		return userStatusList;
	}

	public void setUserStatusList(List<Integer> userStatusList) {
		this.userStatusList = userStatusList;
	}

	public Integer getServiceId() {
		return serviceId;
	}

	public void setServiceId(Integer serviceId) {
		this.serviceId = serviceId;
	}

	public Byte getUrgent() {
		return urgent;
	}

	public void setUrgent(Byte urgent) {
		this.urgent = urgent;
	}

	public Byte getServiceStatus() {
		return serviceStatus;
	}

	public void setServiceStatus(Byte serviceStatus) {
		this.serviceStatus = serviceStatus;
	}

	public Byte getUserStatus() {
		return userStatus;
	}

	public void setUserStatus(Byte userStatus) {
		this.userStatus = userStatus;
	}


	@Override
	public String getOrderSnId() {
		// TODO Auto-generated method stub
		return this.orderSnId;
	}

}